@echo off
::获取管理员权限,减少用户操作步骤
if exist "%SystemRoot%\SysWOW64" path %path%;%windir%\SysNative;%SystemRoot%\SysWOW64;%~dp0
bcdedit >nul
if '%errorlevel%' NEQ '0' (goto UACPrompt) else (goto UACAdmin)
:UACPrompt
%1 start "" mshta vbscript:createobject("shell.application").shellexecute("""%~0""","::",,"runas",1)(window.close)&exit
exit /B
:UACAdmin
cd /d "%~dp0"
::==================================

::菜单
:menu
@echo off
mode con:cols=70 lines=38
title By：若洺
cls
echo.
echo 此工具纯属兴趣开发,无任何恶意行为,使用风险请自行承担！
echo.
echo.代码已开源，开源地址:https://gitee.com/TAROzZ/fix-tools/
echo.
echo 因部分功能会修改系统文件与注册表，所以杀毒软件会误报，介意请勿使用
echo.
echo 如若继续使用，请添加信任并根据下方内容完成操作
echo.
echo [1]　清除菜鸟打印组件残留
echo.
echo 适用于打印组件提示版本过低,实际为安装错误打印组件的问题
echo.
echo.
echo [2]　修复菜鸟打印组件无法打开窗口
echo.
echo 适用于双击无法从桌面或电脑右下角托盘中打开菜鸟打印组件问题
echo.
echo.
echo [3]　修复千牛无法进入超级店长
echo.
echo 适用于进入超级店长提示资源加载失败或提示系统错误[10]
echo.
echo.
echo [4]　修复系统时间不同步(杀毒软件会误报,如需使用允许操作)
echo.
echo 适用于因系统时间不同步导致无法进入超级店长或打开菜鸟打印组件无字报错
echo.
echo.
echo [5]　修改HOSTS/DNS(杀毒软件会误报,如需使用允许操作)
echo.
echo.
echo [Q]　退出程序
echo.
echo 若8秒无操作，程序将自动退出并删除
echo.
choice /c 123459q /n /t 8 /d q /m 请根据实际需要输入对应的按键：
echo %ERRORLEVEL%
if /i "%ERRORLEVEL%"=="7" goto :exit
if /i "%ERRORLEVEL%"=="6" goto sy
if /i "%ERRORLEVEL%"=="5" goto 5
if /i "%ERRORLEVEL%"=="4" goto 4
if /i "%ERRORLEVEL%"=="3" goto 3
if /i "%ERRORLEVEL%"=="2" goto 2
if /i "%ERRORLEVEL%"=="1" goto 1

::goto menu

:1
title 清除菜鸟打印组件残留 By:若洺
cls
echo.
echo 正在终止进程，请稍候

:: 终止菜鸟打印组件进程
taskkill /t /f /im CNPrintClient.exe
timeout /t 2&cls&echo.

echo 正在清除相关文件，请稍候

:: 删除C/D/E/F盘中"Program Files"与"Program Files (x86)"目录下"cainiao-x-print"与"CNPrintTool"文件夹
:: 因为菜鸟打印组件自带卸载程序无法正常卸载
cd C:\Program Files\
rd /s /q cainiao-x-print
rd /s /q CNPrintTool
cd C:\Program Files (x86)\
rd /s /q cainiao-x-print
rd /s /q CNPrintTool
cd D:\Program Files\
rd /s /q cainiao-x-print
rd /s /q CNPrintTool
cd D:\Program Files (x86)\
rd /s /q cainiao-x-print
rd /s /q CNPrintTool
cd E:\Program Files\
rd /s /q cainiao-x-print
rd /s /q CNPrintTool
cd E:\Program Files (x86)\
rd /s /q cainiao-x-print
rd /s /q CNPrintTool
cd F:\Program Files\
rd /s /q cainiao-x-print
rd /s /q CNPrintTool
cd F:\Program Files (x86)\
rd /s /q cainiao-x-print
rd /s /q CNPrintTool
timeout /t 2&cls&echo.
echo 清除完毕,请联系客服获取最新菜鸟打印组件

echo.&timeout /t 3&echo 3秒后自动返回主菜单
goto menu

:2
title 修复菜鸟打印组件无法打开窗口 By:若洺
@echo off
cls
echo.
echo 正在终止进程，请稍候

:: 终止菜鸟打印组件进程
taskkill /t /f /im CNPrintClient.exe

timeout /t 2&cls&echo.

:: 检查是否存在CNPrint文件夹
:: 如果有,则删除所有.lock与.rmlock文件
:: 此步骤是官方文档给出关于双击菜鸟组件无法打开的解决方案
if exist C:\ProgramData\Alibaba\CNPrint\ (
del /f /q C:\ProgramData\Alibaba\CNPrint\*.lock*
del /f /q C:\ProgramData\Alibaba\CNPrint\*.rmlock*
echo 组件目录中相关文件已删除完毕！
) else (
echo 组件目录中文件不存在或已删除！
)

echo.&timeout /t 3&echo 3秒后自动返回主菜单
goto menu

:3
title 修复千牛无法进入超级店长 By:若洺
@echo off
cls
echo.
echo 正在终止进程，请稍候
:: 终止千牛进程
taskkill /t /f /im AliWorkbench.exe
timeout /t 3
cls
echo.
echo 正在清除相关文件，请稍候
:: 清理temp目录下文件
del /q /f %temp%\*.*
timeout /t 3
cls
echo.
echo 清除完毕,请重登千牛

echo.&timeout /t 3&echo 3秒后自动返回主菜单
goto menu

:4
title 修复系统时间不同步 By:若洺
@echo off
cls
echo.
echo 正在校准时间，请稍候
echo.

:: 停止w32time服务
net stop w32time

:: 注销/注册w32tm服务
w32tm /unregister
w32tm /register

:: 启动w32time服务
net start w32time

:: 修改注册表"MaxPosPhaseCorrection"、"MaxNegPhaseCorrection"、"SpecialPollInterval"的值

:: "MaxPosPhaseCorrection"、"MaxNegPhaseCorrection"
:: Windows同步有时间跨度限制,解除跨度限制.如:2000-01-01也可以直接同步至正确时间
reg add HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\W32Time\Config /v "MaxPosPhaseCorrection" /t REG_DWORD /d 0xffffffff /f
reg add HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\W32Time\Config /v "MaxNegPhaseCorrection" /t REG_DWORD /d 0xffffffff /f

:: "SpecialPollInterval"
:: 解除同步时间间隔限制
reg add HKEY_LOCAL_MACHINE\SYSTEM\ControlSet001\services\W32Time\TimeProviders\NtpClient /v "SpecialPollInterval" /t REG_DWORD /d 1200 /f

:: 与windows服务器同步时间
w32tm /config /manualpeerlist:time.windows.com /syncfromflags:manual /reliable:yes /update
w32tm /config /manualpeerlist:time.nist.gov /syncfromflags:manual /reliable:yes /update
w32tm /resync
cls
echo.
echo 时间校准完毕，请核对当前系统时间
echo.
echo 如若不同步，请参考链接下方链接或联系客服远程处理
echo.
echo 复制方法：鼠标左键滑动选择后并单击右键操作复制
echo.
echo.Win7同步系统时间方法
echo.
echo https://jingyan.baidu.com/article/ff42efa93943d8809e2202b8.html
echo.
echo Win10同步系统时间方法
echo.
echo https://jingyan.baidu.com/article/ab0b56307f70a2805afa7dc3.html
echo.
echo 可复制上方链接查看图文教程，10秒后将自动返回主菜单
echo.
timeout /t 10&echo.
goto menu

:5
title HOSTS修改 By:若洺
@echo off
cls
echo.
choice /c ynq /n /m 是否需要写入HOSTS?(Y/n)：
if /i "%ERRORLEVEL%"=="3" goto :exit
if /i "%ERRORLEVEL%"=="2" goto :dns
if /i "%ERRORLEVEL%"=="1" goto :hosts
goto menu

:hosts
title 修改HOSTS By:若洺
@echo off
cls
echo.
echo 正在写入，请稍候

:: 检查是否存在hosts
:: 如果存在,则将hosts设置为+A(设置存档属性) -R(取消只读属性) -S(取消系统文件属性) -H(取消隐藏文件属性)
:: 并写入hosts内容
if exist C:\Windows\System32\drivers\etc\hosts (
attrib C:\Windows\System32\drivers\etc\hosts +A -R -S -H
echo.>>C:\Windows\System32\drivers\etc\hosts
echo 47.92.10.251 f.superboss.cc>>C:\Windows\System32\drivers\etc\hosts
echo 47.92.10.251 home.superboss.cc>>C:\Windows\System32\drivers\etc\hosts
echo 39.96.127.67 qnfh.superboss.cc>>C:\Windows\System32\drivers\etc\hosts
echo 47.92.10.251 qnfh.superboss.cc>>C:\Windows\System32\drivers\etc\hosts
echo.
echo Hosts文件写入完成！
) else (
echo Hosts文件丢失！请联系客服处理
)
echo.
choice /c ynq /n /m 是否继续写入DNS?(Y/n)：
if /i "%ERRORLEVEL%"=="3" goto :exit
if /i "%ERRORLEVEL%"=="2" goto :over
if /i "%ERRORLEVEL%"=="1" goto :dns
goto hosts

:dns
title DNS修改 By:若洺
@echo off
cls
echo.
choice /c ynq /n /m 是否需要写入DNS?(Y/n)：
if /i "%ERRORLEVEL%"=="3" goto :exit
if /i "%ERRORLEVEL%"=="2" goto :over
if /i "%ERRORLEVEL%"=="1" goto :network
goto dns

:network
echo.
echo 请根据当前网络类型进行选择
echo.
echo [1]　无线网络(WIFI)
echo.
echo [2]　有线网络(非WIFI)
echo.
choice /c 12q /n /m 请根据实际需要输入对应的按键：
if /i "%ERRORLEVEL%"=="3" goto :exit
if /i "%ERRORLEVEL%"=="2" goto :local
if /i "%ERRORLEVEL%"=="1" goto :wifi
goto network

:wifi
rem =-=-=-=-= 设置DNS(无线网络) =-=-=-=-=
echo.
echo 获取外网卡行数
for /f "tokens=1 delims=:" %%i in ('ipconfig /all ^| findstr "255.255.255.0 无线局域网适配器" ^| findstr /N "255.255.255.0"') do (set a=%%i)
set /a n=%a%-1

echo.
echo 读取外网卡信息
set/a n-=1
if "%n%"=="0" (set "skip=") else (set "skip=skip=%n%")
for /f "%skip% tokens=* delims="  %%i in ('ipconfig /all ^| findstr "255.255.255.0 无线局域网适配器"') do (set a=%%i&&goto:net)
:net
for /f "tokens=2,3 delims= " %%a in ("%a%") do (set network=%%a %%b)
set network=%network:~0,-1%
FOR /F "tokens=1* delims=:" %%i in ("%network%") do set netName=%%i
echo.

netsh -c interface ip add dns name="%netName%" addr=223.5.5.5 index=1
netsh -c interface ip add dns name="%netName%" addr=223.6.6.6 index=2
echo 当前网卡：%netName%
rem =-=-=-=-==-=-=-=-=-=-=-=-=-
@ipconfig /flushdns

echo.&timeout /t 3&echo 3秒后自动返回主菜单
goto menu

:local
rem =-=-=-=-= 设置DNS(本地网络) =-=-=-=-=
echo.
echo 获取外网卡行数
for /f "tokens=1 delims=:" %%i in ('ipconfig /all ^| findstr "255.255.255.0 以太网适配器" ^| findstr /N "255.255.255.0"') do (set a=%%i)
set /a n=%a%-1

echo.
echo 读取外网卡信息
set/a n-=1
if "%n%"=="0" (set "skip=") else (set "skip=skip=%n%")
for /f "%skip% tokens=* delims="  %%i in ('ipconfig /all ^| findstr "255.255.255.0 以太网适配器"') do (set a=%%i&&goto:net)
:net
for /f "tokens=2,3 delims= " %%a in ("%a%") do (set network=%%a %%b)
set network=%network:~0,-1%
FOR /F "tokens=1* delims=:" %%i in ("%network%") do set netName=%%i
echo.
echo 当前网卡：%netName%
netsh -c interface ip add dns name="%netName%" addr=223.5.5.5 index=1
netsh -c interface ip add dns name="%netName%" addr=223.6.6.6 index=2
rem =-=-=-=-==-=-=-=-=-=-=-=-=-
@ipconfig /flushdns

echo.&timeout /t 3&echo 3秒后自动返回主菜单
goto menu

:over
echo.
echo 操作已取消，3秒后自动返回主菜单
echo.&timeout /t 3&echo.
goto menu

:sy
title 批量替换水印 By:若洺
mode con cols=85 lines=26
@echo off
cls
echo.
echo // 使用前注意事项：
echo.
echo // 请务必告知用户操作会还原投放时的主图
echo.
echo // 如若投放后操作换过主图导致主图不一致的情况,概不负责
echo.
echo // 使用说明:先复制下方代码,在水印替换页面,按F12,在控制台中粘贴代码,按下回车即可
echo.
echo // 定时:每9秒执行一次
echo.
echo setInterval(function () {
echo.
echo     // 点击"全选"
echo     document.getElementsByClassName('btn btn-xs btn-success toggle-all')[0].click()
echo.
echo     // 点击"批量替换选中宝贝"
echo     document.getElementsByClassName('icon-ok')[0].click()
echo.
echo     // 点击"确定批量替换选中宝贝"
echo     document.getElementsByClassName('xubox_yes xubox_botton2')[0].click()
echo.
echo     // 延迟8秒 点击"下一页"
echo     setTimeout("document.getElementById('J-item-next-page').click()", 8000)     // X
echo }, 9000);   // Y
echo.
echo // 根据实际性能决定时间参数长短,X^<Y至少500毫秒,如：X=8000,那么Y一定不能小于8500
echo.
set/p a=输出代码完毕，输入任意字符返回主菜单：　

if /i "%a%"=="q" goto :exit
if /i "%a%"=="" exit
goto menu

:exit
::自毁
del %0